package cn.itcalvin.sncoal.cth.pojo.req.mine;

import cn.itcalvin.sncoal.cth.config.NullToStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Column;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;

@Data
public class ReqMineModify {

    @ApiModelProperty(value = "主键")
    @NotNull(message = "主键不能为null")
    private Long id;

    /**
     * 矿区名称
     */
    @Column(name = "mineName")
    @ApiModelProperty(value="矿区名称")
    @Size(max = 50,message = "矿区名称最大长度要小于 50")
    @NotBlank(message = "矿区名称不能为空")
    private String mineName;

    /**
     * 矿井类别 1.I类 2.Ⅱ类 3.Ⅲ类
     */
    @Column(name = "mineType")
    @ApiModelProperty(value="矿井类别 1.I类 2.Ⅱ类 3.Ⅲ类")
    @Size(max = 20,message = "矿井类别 1.I类 2.Ⅱ类 3.Ⅲ类最大长度要小于 20")
    private String mineType;

    /**
     * 是一个数组，如果为空，则代表只查询评分项为0的，反之需要对应 1.有无瓦斯智能抽采 2.有无瓦斯智能防突 3.有无立井提升 4.有无轨道运输
     */
    @Column(name = "mineState")
    @ApiModelProperty(value="是一个数组，如果为空，则代表只查询评分项为0的，反之需要对应 1.有无瓦斯智能抽采 2.有无瓦斯智能防突 3.有无立井提升 4.有无轨道运输")
    @Size(max = 255,message = "是一个数组，如果为空，则代表只查询评分项为0的，反之需要对应 1.有无瓦斯智能抽采 2.有无瓦斯智能防突 3.有无立井提升 4.有无轨道运输最大长度要小于 255")
    private String mineState;

    /**
     * 经度
     */
    @Column(name = "longitude")
    @ApiModelProperty(value="经度")
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @Column(name = "latitude")
    @ApiModelProperty(value="纬度")
    private BigDecimal latitude;

    /**
     * 矿区/矿井简介
     */
    @Column(name = "remark")
    @ApiModelProperty(value="矿区/矿井简介")
    @JsonSerialize(nullsUsing = NullToStringSerializer.class)
    private String remark;
}
